Digital watermarking is a process for modifying physical or electronic media to embed a machine-readable code into the media. The media may be modified such that the embedded code is imperceptible or nearly imperceptible to the user, yet may be detected through an automated detection process. Most commonly, digital watermarking is applied to media signals such as images, audio signals, and video signals. However, it may also be applied to other types of media objects, including documents (e.g., through line, word or character shifting, or line/character thickness variations), software, multi-dimensional graphics models, and surface textures of objects.
Digital watermarking systems typically have two primary components: an encoder that embeds the watermark in a host media signal, and a decoder that detects and reads the embedded watermark from a signal suspected of containing a watermark (a suspect signal). The encoder embeds a watermark by subtly altering the host media signal. The reading component analyzes a suspect signal to detect whether a watermark is present. In applications where the watermark encodes information, the reader extracts this information from the detected watermark.
Several particular watermarking techniques have been developed. The reader is presumed to be familiar with the literature in this field. Particular techniques for embedding and detecting imperceptible watermarks in media signals are detailed in the assignee's co-pending application Ser. Nos. 10/319,404, 09/503,881 and U.S. Pat. No. 6,122,403, which are hereby incorporated by reference.
A particular class of digital watermarking, called reversible watermarking, enables the original host signal to be reconstructed. One example is disclosed in assignee's application Ser. No. 10/319,404, which describes a variety of methods for reversible watermarking of data, including a technique specifically referred to as difference expansion. Reversible watermarking has a number of applications, as illustrated in the patent documents incorporated above. In one application, a reversible watermark is used to verify that content in which it is embedded has not been altered. In particular, if the reversible watermark can be recovered and/or the content verified (e.g., via comparison of a hash of the perfectly restored content and a hash of original content carried in watermark), then the content is deemed authentic. Many proposed techniques focus on high data carrying capacity while maintaining fidelity of the content. Others propose making the watermark robust, and conditionally reversible in the event that the content has not been altered. For some applications, the reversible watermark can be used to degrade fidelity intentionally, and then restore high quality content through reversal of the watermark, assuming the content user has paid for, licensed, or otherwise been granted permission to access the high quality version.
The needs of a particular application vary, including the extent to which content quality is preserved, auxiliary data carrying capacity is maximized, and robustness is maintained.
In one aspect of the invention, a data set is transformed to a domain in which values are robust to distortion. The values are then expanded to carry auxiliary data.
Another aspect of the invention is a method to read the auxiliary data. To recover the auxiliary data, the data set is transformed into the domain, further transformed to get a set of possibly expanded data, and then processed to extract data from the expanded values.
This disclosure provides various methods for reversible watermarking and related software and systems. One method performs reversible watermarking to embed auxiliary data in an original data set. The method reversibly embeds the auxiliary data into the original data set by expanding values in the original data set that distorts the values, yet enables the values to be perfectly re-constructed. The method applies rate control to determine how to expand the values to minimize distortion for a desired auxiliary data carrying capacity or to maximize data carrying capacity for a desired distortion.
In another variation, the method applies a perceptual model to determine how to expand the values to minimize distortion for a desired auxiliary data carrying capacity or to maximize data carrying capacity for a desired perceptual distortion. This perceptual model may be used in conjunction with a control system with feedback to optimize the embedding based on quality and/or data capacity constraints.
Another method performs reversible watermarking to embed auxiliary data in an original data set. The method selects sets of elements in the original data set for expansion. It reversibly embeds the auxiliary data into the original data set by expanding values associated with the selected sets in a manner that distorts the values, yet enables the values to be perfectly re-constructed. The reversible watermarking is performed iteratively in layers, and for the layers, interleaving sets of elements are selected for expansion in successive layers.
Further features will become apparent with reference to the following detailed description and accompanying drawings.